package com.example.mall.service;

import com.example.mall.api.mall.param.MallUserUpdateParam;
import com.example.mall.util.PageQueryUtil;
import com.example.mall.util.PageResult;

public interface MallUserService {

    /**
     * 用户注册
     *
     * @param loginName 用户登录名
     * @param password 密码
     * @return 枚举结果
     */
    String register(String loginName, String password);


    /**
     * 登录
     *
     * @param loginName 用户登录名
     * @param passwordMD5 MD5形式密码
     * @return 枚举结果
     */
    String login(String loginName, String passwordMD5);

    /**
     * 用户信息修改
     *
     * @param mallUser 用户修改时所需的参数对象
     * @return 布尔值
     */
    Boolean updateUserInfo(MallUserUpdateParam mallUser, Long userId);

    /**
     * 登出接口
     * @param userId 用户id
     * @return 布尔值
     */
    Boolean logout(Long userId);

    /**
     * 用户禁用与解除禁用(0-未锁定 1-已锁定)
     *
     * @param ids 用户id数组
     * @param lockStatus 锁定状态
     * @return 布尔值
     */
    Boolean lockUsers(Long[] ids, int lockStatus);

    /**
     * 后台分页
     *
     * @param pageUtil 分页参数工具类
     * @return 分页结果工具类
     */
    PageResult getMallUsersPage(PageQueryUtil pageUtil);
}
